---
title: 'Getting Started'
---

You will need a couple of tools to compile, build, package and debug your Yew application.
When getting started, we recommend using [Trunk](https://trunkrs.dev/). Trunk is a WASM web application
bundler for Rust.

## Installing Rust

To install Rust, follow the [official instructions](https://www.rust-lang.org/tools/install).

:::important
The minimum supported Rust version (MSRV) for Yew is `1.64.0`. Older versions will not compile.
You can check your toolchain version using
`rustup show` (under "active toolchain") or `rustc --version`. To update your
toolchain, run `rustup update`.
:::

## Install WebAssembly target

Rust can compile source codes for different "targets" (e.g. different processors). The compilation
target for browser-based WebAssembly is called `wasm32-unknown-unknown`. The following command will
add the WebAssembly target to your development environment.

```shell
rustup target add wasm32-unknown-unknown
```

## Install Trunk

Trunk is the recommended tool for managing deployment and packaging and is used throughout the
documentation and examples.

```shell
# note that this might take a while to install because it compiles everything from scratch
# Trunk also provides prebuilt binaries for a number of major package managers
# See https://trunkrs.dev/#install for further details
cargo install --locked trunk
```

### Other options

There are options other than Trunk that may be used for bundling Yew applications. You might want to try one of these options:

-   [`wasm-pack`](https://rustwasm.github.io/wasm-pack/)
-   [`wasm-run`](https://github.com/IMI-eRnD-Be/wasm-run)
-   [`xtask-wasm`](https://github.com/rustminded/xtask-wasm/) (still in early development)

## Next steps

With your development environment setup, you can now either proceed with reading the documentation.
If you like to learn by getting your hands dirty, we recommend you check out our [tutorial](../tutorial).
